Iterative decoding method of lfsr sequences with a low false-alarm probability

ABSTRACT

A message-passing iterative decoding method of an associated LFSR sequence (or M-sequence) as a simplex code, to a parity matrix H. The method includes determining a set of parity polynomials with a low weight obtained by combining the parity equations of the matrix H. For each combination of K such polynomials of this set, an extended parity matrix H ext  is built by concatenating elementary parity matrices associated with the parity polynomials of said combination. The combination of parity polynomials leading to a bipartite graph not having cycles with a length 4 and having a minimum number of cycles with lengths 6 and 8 is selected. Then, the LFSR sequence is decoded using the bipartite graph corresponding to the selected combination. This decoding method enables the false-alarm rate to be substantially reduced.

TECHNICAL FIELD

The present invention generally relates to the field of message-passing iterative decoding, and more particularly that of sequences with a maximum length.

STATE OF PRIOR ART

Maximum length sequences, also called M-sequences, are binary sequences having very good correlation properties. For this reason, they are widely used in synchronizing receivers of wireless telecommunication systems or positioning systems.

A conventional method for synchronizing a receiver by means of an M-sequence consists in making a correlation of the received signal with a replica of the M-sequence. If a correlation peak is observed and if its amplitude is higher than a predetermined threshold level, the receiver is synchronized on the peak in question.

It is reminded that an M-sequence is obtained from a primitive generator polynomial. If this polynomial is of degree r, the period of the sequence is maximal, that is of the length 2^(r)−1. In practice, an M-sequence can be generated from a feedback shift register, also called LFSR (Linear Feedback Shift Register), the register samples corresponding to the coefficients of the generator polynomial.

FIG. 1 represents an exemplary M-sequence generator using an LFSR register, according to a so-called Fibonacci structure.

The (primitive) generator polynomial used for generating the M-sequence is here:

$\begin{matrix} {{g(x)} = {\sum\limits_{k = 0}^{r}\; {g_{k}x^{k}}}} & (1) \end{matrix}$

The generator is initialized by a word of r bits which is stored in the shift register. The code thus generated, called a simplex code, is a cyclic code [N,r] where N=2^(r)−1 is the size of the code word and r the number of information bits.

The check polynomial, also called a parity polynomial, associated with the generator polynomial g(x) is h(x)=(x^(N)−1)/g(x). It can be shown that for the simplex code h(x)=x^(r)g(x^(−l)) and that the parity matrix associated with this code is the matrix H with the size (N−r)×N given by:

$\begin{matrix} {H = \begin{bmatrix} g_{r} & \cdots & g_{0} & 0 & \cdots & \cdots & 0 \\ 0 & g_{r} & \cdots & g_{0} & 0 & \cdots & 0 \\ \vdots & \ddots & \ddots & \ddots & \ddots & \ddots & \vdots \\ 0 & \cdots & 0 & g_{r} & \cdots & g_{0} & 0 \\ 0 & \cdots & \cdots & 0 & g_{r} & \cdots & g_{0} \end{bmatrix}} & (2) \end{matrix}$

An alternative decoding method consists in considering the elements of the M-sequence as variable nodes, and the parity equations they should meet as constraint nodes. It is then possible to make a message-passing iterative decoding in a bipartite graph formed by the variable nodes and the constraint nodes, the edges between the variable nodes and the constraint nodes being given by the elements of the parity matrix. An example of message-passing M-sequence iterative decoding will be found in the paper of O. W. Yeung et al. entitled “An iterative algorithm and low complexity hardware architecture for fast acquisition of long PN codes in UWB systems” published in the Journal of VLSI Signal Processing 43, pp. 25-42, 2006.

In practice, a message-passing M-sequence iterative decoding slowly converges if a bipartite graph based on the parity matrix given by the expression (2) is used. To overcome this difficulty, it has been suggested in the abovementioned paper to combine a plurality of elementary sub-graphs, each elementary sub-graph corresponding to a set of new parity equations. More precisely, the variable nodes remain identical and redundant constraint nodes are introduced. Indeed, the sum of a plurality of parity equations (for example those corresponding to the rows of the matrix H) is still a parity equation.

This consequently results in a graph consisting of several bipartite elementary sub-graphs, these different elementary sub-graphs sharing the set of variable nodes and each elementary sub-graph comprising its specific constraint nodes. In other words, this amounts to using an extending parity matrix, H_(ext) obtained by concatenating K elementary parity matrices:

$\begin{matrix} {H_{ext} = \begin{bmatrix} H_{0} \\ H_{1} \\ \vdots \\ H_{K - 1} \end{bmatrix}} & (3) \end{matrix}$

The elementary parity matrices H_(a) being circulant Toeplitz matrices, with a size (N−r_(a))×N defined by:

$\begin{matrix} {H_{a} = \begin{bmatrix} c_{a,0} & \cdots & \cdots & c_{a,r_{a}} & 0 & \cdots & \cdots & 0 \\ 0 & c_{a,0} & \cdots & \cdots & c_{a,r_{a}} & 0 & \cdots & 0 \\ \vdots & \ddots & \ddots & \ddots & \ddots & \ddots & \ddots & \vdots \\ \ddots & \ddots & \ddots & \ddots & \ddots & \ddots & \ddots & 0 \\ 0 & \cdots & \cdots & 0 & c_{a,0} & \cdots & \cdots & C_{a,r_{a}} \\ c_{a,r_{a}} & \cdots & \cdots & \cdots & 0 & c_{a,0} & \cdots & a_{a,{r_{a} - 1}} \\ \vdots & \ddots & \cdots & \cdots & 0 & \ddots & \ddots & \vdots \\ c_{a,1} & \cdots & c_{a,r_{a}} & 0 & \cdots & \cdots & 0 & c_{a,0} \end{bmatrix}} & (4) \end{matrix}$

Each elementary matrix H_(a) represents the convolution of the sequence of received samples with a parity polynomial h_(a)(x)=1+x^(t) ^(a) + . . . +x^(r) ^(a) with a degree r_(a) and each row of this matrix corresponds to a parity equation based on this polynomial.

The synchronization of the receiver consists in determining whether a series of M received samples y=(y₀ . . . y_(M−1)), corresponds to a portion of LFSR sequence, in other words to determine whether this series of samples can be decoded by the message-passing decoder. If so, the receiver can deduce therefrom the beginning of the sequence (the initial word in the LFSR register) and the place where the series of samples is in the sequence.

The receiver has consequently to choose between two hypotheses:

A₀: y_(k)=w_(k)   (5-1)

A ₁ : y _(k) =s _(k) +w _(k)   (5-2)

where s_(k) are the elements of the LFSR sequence and w_(k) are noise samples.

If the receiver determines that it has detected an LFSR sequence (hypothesis A₁) whereas the received samples are actually noise (hypothesis A₀ valid), there is a false-alarm situation.

It is assumed here, for the sake of simplification, that the receiver observes a series of M=N consecutive samples, in other words a number of samples corresponding to the length of an LFSR sequence.

To choose between the hypotheses A₀ and A₁, the decoder makes a message-passing iterative decoding of the series of samples, the variable nodes being initialized by means of these samples.

The message-passing decoding can be made in a known manner per se by means of a Sum-product-type algorithm such as described in the paper of Kschichang et al. entitled “Factor graph and the sum-product algorithm” published in IEEE Trans. on Information Theory, vol. 47, no. 2, February 2001, or even a Min-Sum-type algorithm as described in the thesis of N. Wiberg entitled “Codes and decoding on general graphs”, University of Linkoping, Sweden, 1996.

The receiver determines that the hypothesis A₁ is met if:

H_(ext)y^(T)=0   (6)

where H_(ext) is defined by the expressions (3) and (4). In other words, the receiver checks that all the parity equations are met.

It could have been noticed that the choice of the polynomials h_(a)(x) could strongly influence the false-alarm probability (P_(FA)) of the receiver.

FIG. 2 for example shows the false-alarm probability for a receiver decoding an LFSR sequence generated from a generator polynomial the coefficients of which are defined in octal numeration by the word 2415.

For the decoding, an extended parity matrix, H_(ext), constituted by concatenating K=5 elementary parity matrices H_(a), each matrix H_(a) corresponding to a polynomial h_(a)(x) with the weight 3 has been chosen. It is reminded that the weight of a polynomial is the number of its non-zero monomials.

The figure shows the false-alarm probability (P_(FA)) as a function of the signal-to-noise ratio (SNR), in reception, for different combinations of K=5 matrices H_(a). The different combinations, and thus the different matrices H_(ext) are designated by a,b,c,d,e

It is observed that the false-alarm rate varies by three orders of magnitude depending on the combination of polynomials selected.

The purpose of the present invention is to provide an LFSR sequence (or M-sequence) decoding method having a very low false-alarm rate (P_(FA)) without detriment to the convergence speed.

DISCLOSURE OF THE INVENTION

The present invention is defined by a message-passing iterative decoding method of an LFSR sequence with a length N generated by means of a generator polynomial, said LFSR sequence being associated, as a simplex code, with a parity matrix, H, said decoding method comprising the following steps of:

(a) determining a set of parity polynomials, with a weight equal to 3 and a constant equal to 1, corresponding to a combination of parity equations of the matrix H;

(b) generating an extended parity matrix H_(ext) by concatenating a predetermined number K or elementary parity matrices, respectively associated with K parity polynomials selected from said set;

(c) checking that the Tanner graph associated with the matrix H_(ext) does not include a cycle with a length 4 and, in the absence of such a cycle,

(d) calculating the number of cycles with a length 6 within the Tanner graph and, in the case where this number is equal to NK storing in a table the combination of parity polynomials selected in step (b);

steps (b), (c), (d) being repeated for all the combinations of K parity polynomials of said set; and

(e) calculating for each combination of parity polynomials stored in said table, the number of cycles with the length 8 in the Tanner graph associated with the matrix H_(ext);

(f) selecting a combination of K parity polynomials corresponding to the lowest number of cycles with a length 8 calculated in step (e) to carry out a message-passing iterative decoding of said sequence in the Tanner graph associated with the matrix H_(ext) generated from the combination thus selected.

The checking in step (c) advantageously consists in determining whether one of the following conditions r_(b)−i_(b)=i_(a), r_(b)−i_(b)=r_(a), r_(b)−i_(b)=r_(a)−i_(a); r_(a)−i_(a)=i_(b) is met for at least any one couple of parity polynomials g_(a)(x)=−1+x^(i) ^(a) +x^(r) ^(a) and g_(b)(x)=1+x^(r) ^(b) +x^(r) ^(b) , from the K parity polynomials selected in step (b), the absence of a cycle with a length 4 in the Tanner graph being set if none of the previous conditions is met.

The number of cycles with the length 6 in the Tanner graph associated with the matrix H_(ext) can be obtained from

$N_{6} = {\frac{1}{6}\left( {{{tr}\left( A^{3} \right)} - {3{{KN}\left( {\left( {K^{2} + {3K} + 1} \right) - {9\left( {K + 1} \right)} + 2} \right)}}} \right)}$

where A=H_(ext)H_(ext) ^(T) and tr(.) is the trace function.

The calculation of the number of cycles with the length 8 in the Tanner graph associated with the matrix H_(ext) comprises calculating tr(A⁴)−4(3K+1)tr(A³) where A=H_(ext)H_(ext) ^(T), and tr(.) is the trace function.

The trace tr(A³) can be obtained by

${{tr}\left( A^{3} \right)} = {\sum\limits_{i = 0}^{K - 1}\; {\sum\limits_{j = 0}^{K - 1}\; {\sum\limits_{k = 0}^{K - 1}\; T_{ijk}}}}$

where

${T_{ijk} = {\sum\limits_{\alpha \in \Omega_{ji}}{\sum\limits_{\beta \in \Omega_{kj}}{{A_{k,i}\left( {0,\gamma} \right)}{A_{k,j}\left( {0,\beta} \right)}{A_{j,i}\left( {0,\alpha} \right)}}}}},{A_{i,j}\left( {\mu,v} \right)}$

being the element of the row μ and the column v of the matrix A_(i,j)=H_(i)H_(j) ^(T), where H_(i) and H_(j) are elementary parity matrices associated with two parity polynomials from the K parity polynomials selected in step (b), α=φ(s−l); β=φ(h−l); γ=φ(s−h) where:

${\phi (u)} = \left\{ \begin{matrix} {{{u\mspace{14mu} {if}\mspace{14mu} 0} \leq u \leq {N - 1}}\mspace{40mu}} \\ {{N + {u\mspace{14mu} {if}}\mspace{14mu} - N} < u < 0} \end{matrix} \right.$

and where Ω_(ji), Ω_(kj) are the sets of non-zero elements of the first row of the matrix A_(i,j) and the first row of the matrix A_(j,k) respectively.

The trace tr(A⁴) is obtained by calculating

${{tr}\left( A^{3} \right)} = {\sum\limits_{i = 0}^{K - 1}\; {\sum\limits_{j = 0}^{K - 1}\; {\sum\limits_{k = 0}^{K - 1}\; {\sum\limits_{l = 0}^{K - 1}\; T_{ijkl}}}}}$

where:

$T_{ijkl} = {\sum\limits_{\alpha \in \Omega_{ji}}{\sum\limits_{\beta \in \Omega_{kj}}{\sum\limits_{\gamma \in \Omega_{lk}}{{A_{l,i}\left( {0,\left( {\alpha + \beta + {\gamma \mspace{14mu} {mod}\mspace{14mu} N}} \right)} \right)}{A_{k,j}\left( {0,\beta} \right)}{A_{j,i}\left( {0,\alpha} \right)}{A_{l,k}\left( {0,\gamma} \right)}}}}}$

A_(i,j)(μ,v) being the element at the row μ and the column v of the matrix A_(i,j)=H_(i)H^(T) _(j), where H_(i) and H_(j) are the elementary parity matrices associated with two parity polynomials from the K parity polynomials selected in step (b), α=φ(s−l); β=φ(h l); γ=φ(s h) where:

${\phi (u)} = \left\{ \begin{matrix} {{{u\mspace{14mu} {if}\mspace{14mu} 0} \leq u \leq {N - 1}}\mspace{40mu}} \\ {{N + {u\mspace{14mu} {if}}\mspace{14mu} - N} < u < 0} \end{matrix} \right.$

and where Ω_(ji), Ω_(kj), Ω_(lk) are the sets of non-zero elements of the first respective rows of the matrices A_(i,j), A_(j,k), A_(k,l).

The iterative decoding advantageously uses a Min-Sum-type algorithm on the Tanner graph associated with the matrix H_(ext) generated from the combination selected in step (e).

Alternatively, the iterative decoding uses a Sum-Product-type algorithm on the Tanner graph associated with the matrix H_(ext) generated from the combination selected in step (e).

In any case, a criterion of convergence can be applied to the values of the variable nodes of the Tanner graph after a predetermined number of iterations and if this criterion is not met, it is concluded that there is an absence of the LFSR sequence.

BRIEF DESCRIPTION OF THE DRAWINGS

Further characteristics and advantages of the invention will appear upon reading preferential embodiments in reference to the appended figures in which:

FIG. 1 represents an M-sequence generator according to a Fibonacci representation;

FIG. 2 represents the false-alarm rate of a receiver, for a given LFSR sequence and different parity matrices;

FIG. 3 represents a cycle with a length 6 in the bipartite graph used by the decoder;

FIG. 4 schematically represents a flowchart of the decoding method according to one embodiment of the invention.

DETAILED DISCLOSURE OF PARTICULAR EMBODIMENTS

Hereinafter, a receiver that has to be synchronized using an LFSR sequence and more precisely a decoder that has to decide between a presence hypothesis (A₁) and an absence hypothesis (A₁₁) of such a sequence will be considered, as described in the introductory part.

The decoder resorts to a message-passing decoding method in a bipartite graph. The bipartite graph consists of a plurality of variable nodes representing the elements of the sequence and a plurality of constraint nodes representing the parity equations to be checked by the elements of the sequence. The graph consists of a plurality K of elementary sub-graphs, said elementary sub-graphs sharing the variable nodes, each elementary sub-graph comprising its own constraint nodes. The edges of each elementary sub-graph are given by the rows of an elementary parity matrix, H_(a) obtained by combining rows of the parity matrix H, each elementary parity matrix corresponding to a parity polynomial (or check polynomial) h_(a)(x).

The extended parity matrix H_(ext) associated with the graph is then the concatenation of the elementary parity matrices H_(a). The message-passing iterative decoding is made using a Sum-product or Min-sum-type algorithm as set out above.

Given that the combination of two rows of the parity matrix H provides again a parity equation, there is, for a given integer K, a great number of possible combinations of parity polynomials. For a given generator polynomial g(x) (and thus a given parity matrix H), the possible combinations of parity polynomials can be obtained, in a known manner per se, according to the method described in the papers by W. T. Penzhorn et al. entitled “Computation of low-weight parity checks for correlation attacks on stream ciphers”, Cryptography and Coding, Springer, 1995 and by P. Chose et al. entitled “Fast correlation attacks: an algorithmic point of view”, Advances in Cryptology, Eurocrypt 2002, Springer 2002, incorporated herein in reference.

The idea underlining the invention is to resort only to parity polynomials h_(a)(x) with a weight t=3 and a constant equal to 1, then to make among them a selection to remove the cycles with a length 4 and finally to choose from the remaining ones those which enable the number of cycles with lengths 6 and 8 to be minimized in the bipartite graph (or Tanner graph).

It was in particular possible to show by simulation, in opposition to a commonly accepted idea, that the reduction in the number of cycles with a length 6 in the Tanner graph did not enable the erroneous decoding probability to be reduced but substantially reduced the false-alarm rate. In addition, it could be shown that the reduction in the number of cycles with a length 8 further reduced the false-alarm rate.

The cycles of a bipartite graph are necessarily of an even length (the number of ridges of a cycle is necessarily even). The shorter cycles in such a graph are thus cycles with lengths 4, 6, 8.

A cycle with a length 4 is reflected in the Tanner graph by two variable nodes both connected to two same constraint nodes (butterfly-shaped circuit between two variable nodes and two constraint nodes) and in the extended parity matrix H_(ext) by elements equal to 1 at the vertices of a rectangle.

The polynomials with a weight 3, respectively associated with the matrices H_(a) and H_(b), are noted g_(a)(x)=1+x^(i) ^(a) +x^(r) ^(a) and g_(b)(x)=1+x^(i) ^(a) +x^(r) ^(b) where r_(a) and r_(b) are the degrees of the polynomials g_(a)(x) and g_(b)(x).

If it is assumed that r_(a)≧r_(b), it can be seen that because of the Toeplitz structure of the matrices H_(a) and H_(b), a cycle with a length 4 in the bipartite graph (associated with the extended parity matrix H_(ext)) can only exist if and only if one of the following conditions is met:

r _(b) −i _(b) =i _(a)   (7-1)

r _(b) −i _(b) =r _(a)   (7-2)

r _(b) −i _(b) =r _(a) −i _(a)   (7-3)

r _(a) −i _(a) =i _(b)   (7-4)

In other words, to exclude the cycles with a length 4, it is sufficient to choose a combination of generator polynomials such that, for any two polynomials g_(a)(x), g_(b)(x) belonging to this combination, none of the conditions (7-1) to (7-4) is met.

The number of cycles with a length 6 in the Tanner graph can be obtained by using the general method described in the paper of T. R. Halford et al. entitled “An algorithm for counting short cycles in bipartite graphs”, published in IEEE Trans. on Information Theory, vol. 52, no. 1, January 2006, pp. 287-292.

More precisely, the following operators are defined:

Y=X−λ=[y(i, j)] where y(i, j)=x(i, j)−λ  (8-1)

U=max(X, 0)=[u(i, j)] where u(i, j)=max(0, x(i, j))   (8-2)

V=X·Y=[v(i, j)] where v(i, j)=x(i, j)y(i, j)   (8-3)

Z(X)=X−X·I   (8-4)

It is thus understood that the operator o represents the Hadamard multiplication and the operator Z(.) cancels the diagonal of the matrix to which it is applied.

The following matrices are further defined:

A=H_(ext)H_(ext) ^(T)   (9-1)

B=H_(ext) ^(T)H_(ext)   (9-2)

Ã=A·I   (9-3)

{tilde over (B)}=B·I   (9-4)

Ã _(m)=max(Ã−1, 0)   (9-5)

{tilde over (B)} _(m)=max({tilde over (B)}−1, 0)   (9-6)

It can be shown that the number of cycles with a length 6 is equal to:

$\begin{matrix} {{N_{6} = {\frac{1}{6}{{tr}(L)}}}{with}} & \left( {10\text{-}1} \right) \\ {L = {{{Z(A)}A^{2}} - {A{\overset{\sim}{B}}_{m}{BE}^{T}} - {{Z\left( {A{\overset{\sim}{A}}_{m}} \right)}A} - {{{EZ}\left( {B{\overset{\sim}{B}}_{m}} \right)}E^{T}} + {{\overset{\sim}{A}}_{m}E{\overset{\sim}{B}}_{m}E^{T}}}} & \left( {10\text{-}2} \right) \end{matrix}$

The matrices A and B depend on the extended parity matrix H_(ext) and consequently on the selected combination of parity polynomials. It is reminded that the extended parity matrix is formed by concatenating K elementary parity matrices H_(ext)=[H_(a(1)) ^(T)H_(a(2)) ^(T) . . . H_(a(K)) ^(T)]^(T) where g_(a(k))(x)=1+x^(i) ^(a(k)) +x^(r) ^(a(k)) is the parity polynomial associated with the parity matrix H_(a(k)), the combination of parity polynomials being formed by the polynomials g_(a(k))(x), k=1, . . . , K.

Because the elementary parity matrices H_(a(k)) are circulant, it can be shown that the expression (10-2) can be simplified as:

$\begin{matrix} {N_{6} = {\frac{1}{6}\left( {{{tr}\left( A^{3} \right)} - {3{{KN}\left( {\left( {K^{2} + {3K} + 1} \right) - {9\left( {K + 1} \right)} + 2} \right)}}} \right)}} & (11) \end{matrix}$

In other words, given that K and N are constants, minimizing the number of cycles with a length 6 in the Tanner graph amounts to minimizing the trace of the matrix A³.

On the other hand, it is possible to determine the minimal number of cycles with a length 6. Indeed, it can be shown that 3 cycles with a length 6 pass through each variable node.

FIG. 3 shows a cycle with a length 6 passing through the variable nodes z(k), z(k+i_(a)), z(k+i_(a)−r_(a)) and the constraint nodes F_(a)(k), F_(a)(k−r_(a)), F_(a)(k−r_(a)+i_(a)) (each representing a parity equation of the matrix H_(a)). The 2 other cycles are deduced from the one represented by replacing k by k−i_(a)and k−r_(a)−i_(a). Given that each cycle involves 3 variable nodes, the minimum number of cycles with a length 6 is:

N₆ ^(min)=NK   (12)

In the same way as previously, the number of cycles with a length 8 in the Tanner graph can be calculated for each extended parity matrix H_(ext)=[H_(a(1)) ^(T)H_(a(2)) ^(T) . . . H_(a(K)) ^(T)]^(T), corresponding to a given combination of the parity polynomials g_(a(k))(x), k=1, . . . , K:

$\begin{matrix} {N_{8} = {\frac{1}{8}\left( {{{tr}\left( A^{4} \right)} - {4\left( {{3K} + 1} \right){{tr}\left( A^{3} \right)}} + {Q\left( {N,K} \right)}} \right)}} & (13) \end{matrix}$

where Q(N,K) is a value which only depends on the constants K,N. Thereby, it is understood that minimizing the number of cycles with a length 8 amounts to minimizing tr(A⁴)−4(3K+1)tr(A³) on the set of possible combinations g_(a(k))(x), k=1, . . . , K.

FIG. 4 represents a flowchart of the decoding method according to one embodiment of the invention.

It is assumed that the receiver knows the generator polynomial of the M-sequence or, equivalently, the parity matrix H of this sequence (parity matrix of a simplex code).

The length N of the sequence is supposed to be known and a number K of parity polynomials, or equivalently, of elementary parity matrices H_(a) is set.

It will be supposed hereinafter, to simplify the presentation, that the receiver processes N successive samples. The decoding method however is also applicable to the case where the receiver only receives M<N samples.

In step 410, the set S₃ of parity polynomials with a weight 3 and a constant equal to 1, which are obtained by combining the parity equations of the matrix H is determined.

Given that the simplex code [2^(r)−1, r] is the dual of the Hamming code [2^(r)−1, 2^(r)−r−1], the number A₃ of parity equations (or polynomials) with a weight 3 and a constant equal to 1 is equal to the number of words of the Hamming code with the weight 3 and a constant equal to 1, that is:

A ₃=2^(r−1)−1   (14)

In step 420, it is checked whether all the combinations of the K parity polynomials from the set S₃ have already being selected. If so, step 480 is proceeded.

If all the combinations of K parity polynomials from the set S₃ have not been selected, a new combination of K polynomials is selected in step 430, g_(a(k))(x), k=1, . . . , K.

In step 440, the corresponding parity matrices H_(a(k)), k=1, . . . , K are deduced from the K parity polynomials thus selected. The elements of these matrices are given by the expression (4). Then, the extended parity matrix H_(ext)=[H_(a(1)) ^(T)H_(a(2)) ^(T) . . . H_(a(K)) ^(T)]^(T) is formed.

In step 450, it is checked that the bipartite graph corresponding to the extended parity matrix H_(ext) does not include a cycle with a length 4. For this, it is determined whether any couple of polynomials from the K selected parity polynomials meets one of the conditions (7-1)-(7-4). If so, the method goes back to step 420. Otherwise, step 460 is proceeded.

It will be noted that steps 440 and 450 can be inverted.

In step 460, the number, N₆, of cycles with a length 6 is calculated in the bipartite graph corresponding to the extended parity matrix H_(ext). This calculation can be made from the expression (11).

In step 470, it is checked whether N₆=NK. If not, the method directly go back to step 420. On the other hand, if so, the bipartite graph contains a minimal number of cycles with a length 6 and the combination of the polynomials g_(a(k))(x), k=1, . . . , K is stored in a table Q in 475, and then the method goes back to step 420 to select a new combination of polynomials of S₃ (if they have not all been already selected).

In step 480, for each combination of polynomials stored in the table Q, the number N₉ of cycles with a length 8 is calculated in the bipartite graph corresponding to the extended parity matrix H_(ext). To that end, it will be sufficient to calculate the part of N₈ which depends on the choice of the combination, in other words tr(A⁴)−4(3K+1)tr(A³).

In 490, the combination C of parity polynomials g_(a(k))(x), k=1, . . . , K which minimizes N₈ is retained, in other words the combination:

$\begin{matrix} {C = {\underset{{\{{{g_{\alpha {(k)}}{(x)}},{k - 1},\ldots,L}\}} \in \Omega}{\arg \mspace{14mu} \min}\left( N_{8} \right)}} & (15) \end{matrix}$

The combination C of polynomials thus retained and the bipartite graph associated with the corresponding matrix H_(ext) are then used to decode the sequence of the received samples.

If, after a predetermined number of iterations, a convergence criterion is not fulfilled, the receiver concludes for the hypothesis A₀, otherwise, it concludes for the hypothesis A₁. The convergence criterion can be for example a mean of the absolute values of the variable nodes, expressed as Log Likelihood Ratios (LLR). In the latter case, the mean of the absolute values can be compared with a threshold to decide for the hypothesis A₀ or A₁.

The calculation of the numbers of cycles N₆ and N₈ can however be complex because of the terms tr(A³) and tr(A⁴), since the size of the matrix A can reach 1000×1000.

It is however possible to simplify the calculation of the traces in question by taking advantage of the circulant nature of the elementary parity matrices H_(a).

More precisely, if A_(i,j)=H_(i)H_(j) ^(T) is set, the matrix A can be expressed as:

$\begin{matrix} {A = \begin{bmatrix} A_{0,0} & A_{0,1} & \cdots & A_{0,{N - 1}} \\ A_{1,0} & A_{1,1} & \cdots & A_{1,{N - 1}} \\ \vdots & \vdots & \ddots & \vdots \\ A_{{N - 1},0} & A_{{N - 1},1} & \cdots & A_{{N - 1},{N - 1}} \end{bmatrix}} & (16) \end{matrix}$

If T_(ijk)=tr (A_(i,j)A_(k,j)A_(i,k)) is set, the trace of A³ can be obtained in the following way:

$\begin{matrix} {{{tr}\left( A^{3} \right)} = {\sum\limits_{i = 0}^{K - 1}\; {\sum\limits_{j = 0}^{K - 1}\; {\sum\limits_{k = 0}^{K - 1}\; T_{ijk}}}}} & (17) \end{matrix}$

with, by assuming i≧j≧k:

$\begin{matrix} {{T_{ijk} = {\sum\limits_{s = 0}^{N - 1}\; {\sum\limits_{h = 0}^{N - 1}\; {\sum\limits_{l = 0}^{N - 1}\; {{A_{ki}\left( {0,{\phi \left( {s - l} \right)}} \right)}{A_{kj}\left( {0,{\phi \left( {h - l} \right)}} \right)}{A_{ji}\left( {0,{\phi \left( {s - h} \right)}} \right)}}}}}}{{where}\text{:}}} & (18) \\ {{\phi (u)} = \left\{ \begin{matrix} {{{u\mspace{14mu} {if}\mspace{14mu} 0} \leq u \leq {N - 1}}\mspace{40mu}} \\ {{N + {u\mspace{14mu} {if}}\mspace{14mu} - N} < u < 0} \end{matrix} \right.} & (19) \end{matrix}$

Thereby, it can be shown that:

$\begin{matrix} {T_{ijk} = {\sum\limits_{\alpha \in \Omega_{ji}}{\sum\limits_{\beta \in \Omega_{kj}}{{A_{k,i}\left( {0,\gamma} \right)}{A_{k,j}\left( {0,\beta} \right)}{A_{j,i}\left( {0,\alpha} \right)}}}}} & (20) \end{matrix}$

where α=φ(s−l); β=φ(h−l); γ=φ(s−h)=(α+β)mod N and where Ω_(ji) is the set of the non-zero elements of the first row of the matrix A_(ij), that is Ω_(ji)={m|A_(j,i)(0, m)≠0}. It can be shown that Ω_(ji) contains 9 indices if i≠j and 7 indices otherwise. The calculation of the trace of A³ in step 460 is thus dramatically simplified.

In a similar way, if T_(ijkl)=tr(A_(i,j)A_(k,j)A_(i,k)A_(l,k)) is set, the calculation of the trace of A⁴ in step 480 can be simplified from:

$\begin{matrix} {{{tr}\left( A^{4} \right)} = {\sum\limits_{i = 0}^{K - 1}\; {\sum\limits_{j = 0}^{K - 1}\; {\sum\limits_{k = 0}^{K - 1}{\sum\limits_{l = 0}^{K - 1}\; T_{ijkl}}}}}} & (21) \\ {T_{ijkl} = {\sum\limits_{\alpha \Subset \Omega_{ji}}{\sum\limits_{\beta \Subset \Omega_{kj}}{\sum\limits_{\gamma \Subset \Omega_{lk}}{{A_{l,i}\left( {0,\left( {\alpha + \beta + {\gamma \mspace{14mu} {mod}\mspace{14mu} N}} \right)} \right)}{A_{k,j}\left( {0,\beta} \right)}{A_{j,i}\left( {0,\alpha} \right)}{A_{l,k}\left( {0,\gamma} \right)}}}}}} & (22) \end{matrix}$

with the same notation conventions as previously.

Hereinafter, it has been supposed that the selection of the parity polynomials, g_(a(k))(x), k=1, . . . , K and the building of the corresponding extended parity matrix H_(ext) was made at the receiver. However, it will be understood that the selection of the parity polynomials and the building of the extended parity matrix can alternatively be made only once, optionally for different generator polynomials (in other words for different possible M-sequences) and the results of this selection/building be stored at the receiver. 

1. A message-passing iterative decoding method of an LFSR sequence with a length N generated with a generator polynomial, said LFSR sequence being associated, as a simplex code, with a parity matrix, H, said decoding method comprising the following steps of: (a) determining a set of parity polynomials, with a weight equal to 3 and a constant equal to 1, corresponding to a combination of parity equations of the matrix H; (b) generating an extended parity matrix H_(ext) by concatenating a predetermined number K or elementary parity matrices, respectively associated with K parity polynomials selected from said set; (c) checking that the Tanner graph associated with the matrix H_(ext) does not include a cycle with a length 4 and, in the absence of such a cycle, (d) calculating the number of cycles with a length 6 within the Tanner graph arid, in the case where this number is equal to NK, storing in a table the combination of parity polynomials selected in step (b); steps (b), (c), (d) being repeated for all the combinations of K parity polynomials of said set; and (e) calculating for each combination of parity polynomials stored in said table the number of cycles with the length 8 in the Tanner graph associated with the matrix H_(ext); (f) selecting a combination of K parity polynomials corresponding to the lowest number of cycles with a length 8 calculated in step (e) to carry out a message-passing iterative decoding of said sequence in the Tanner graph associated with the matrix H_(ext) generated from the combination thus selected.
 2. The iterative decoding method according to claim 1, wherein checking in step (c) consists in determining whether one of the following conditions r_(b)−i_(b)=i_(a), r_(b)−i_(b)=r_(a), r_(b)−i_(b)=r_(a)−i_(a); r_(a)−i_(a)=i_(b) is met for at least any one couple of parity polynomials g_(a)(x)=1+x^(i) ^(a) +x^(r) ^(a) and g_(b)(x)=1+x^(i) ^(b) +x^(r) ^(b) , from the K parity polynomials selected in step (b), the absence of a cycle with a length 4 in the Tanner graph being set if none of the previous conditions is met.
 3. The iterative decoding method according to claim 1, wherein the number of cycles with a length 6 in the Tanner graph associated with the matrix H_(ext) is obtained from $N_{6} = {\frac{1}{6}\left( {{{tr}\left( A^{3} \right)} - {3{{KN}\left( {\left( {K^{2} + {3K} + 1} \right) - {9\left( {K + 1} \right)} + 2} \right)}}} \right)}$ where A=H_(ext)H_(ext) ^(T) and tr(.) is the trace function.
 4. The iterative decoding method according to claim 1, wherein calculating the number of cycles with a length 8 in the Tanner graph associated with the matrix H_(ext) comprises calculating tr(A⁴)−4(3K+1)tr(A³) where A=H_(ext)H_(ext) ^(T) and tr(.) is the trace function.
 5. The iterative decoding method according to claim 3, wherein the trace tr(A³) is obtained by calculating ${{tr}\left( A^{3} \right)} = {\sum\limits_{i = 0}^{K - 1}\; {\sum\limits_{j = 0}^{K - 1}\; {\sum\limits_{k = 0}^{K - 1}\; T_{ijk}}}}$ where: $T_{ijk} = {\sum\limits_{\alpha \in \Omega_{ji}}{\sum\limits_{\beta \in \Omega_{kj}}{{A_{k,i}\left( {0,\gamma} \right)}{A_{k,j}\left( {0,\beta} \right)}{A_{j,i}\left( {0,\alpha} \right)}}}}$ A_(i,j)(μ,v) being the element at the row μ and the column v of the matrix A_(i,j)=H_(i)H_(j) ^(T), where H_(i) and H_(j) are the elementary parity matrices associated with two parity polynomials from the K parity polynomials selected in step (b), and where Ω_(ji), Ω_(kj) are the sets of non-zero elements of the first row of the matrix A_(i,j) and the first row of the matrix A_(j,k), respectively.
 6. The iterative decoding method according to claim 4, wherein the trace tr(A⁴) is obtained by calculating ${{tr}\left( A^{4} \right)} = {\sum\limits_{i = 0}^{K - 1}\; {\sum\limits_{j = 0}^{K - 1}\; {\sum\limits_{k = 0}^{K - 1}{\sum\limits_{l = 0}^{K - 1}\; T_{ijkl}}}}}$ where: $T_{ijkl} = {\sum\limits_{\alpha \Subset \Omega_{ji}}{\sum\limits_{\beta \Subset \Omega_{kj}}{\sum\limits_{\gamma \Subset \Omega_{lk}}{{A_{l,i}\left( {0,\left( {\alpha + \beta + {\gamma \mspace{14mu} {mod}\mspace{14mu} N}} \right)} \right)}{A_{k,j}\left( {0,\beta} \right)}{A_{j,i}\left( {0,\alpha} \right)}{A_{l,k}\left( {0,\gamma} \right)}}}}}$ A_(i,j)(μ,v) being the element at the row μ and the column v of the matrix A_(i,j)=H_(i)H_(j) ^(T), where H_(i) and H_(j) are the elementary parity matrices associated with two parity polynomials from the K parity polynomials selected in step (b) and where Ω_(ji), Ω_(kj), Ω_(lk) are the sets of non-zero elements of the first respective rows of the matrices A_(i,j), A_(j,k), A_(k,l).
 7. The iterative decoding method according to claim 1, wherein a Min-Sum-type algorithm is used on the Tanner graph associated with the matrix H_(ext) generated from the combination selected in step (f).
 8. The iterative decoding method according to claim 1, said method further comprising using a Sum-Product-type algorithm on the Tanner graph associated with the matrix H_(ext) generated from the combination selected in step (f).
 9. The iterative decoding method according to claim 1, wherein a criterion of convergence to the values of the nodes of the variables of the Tanner graph is applied after a predetermined number of iterations and if this criterion is not met, it is concluded that there is an absence of the LFSR sequence. 